Установка InsightStream RAG
В данном шаге будет рассмотрен процесс развертывания модуля InsightStream для умного поиска по корпоративной базе знаний, поверх уже работающе й платформы Compressa. Модуль InsightStream устанавливается на тот же сервер, что и платформа Compressa. Для установки команда передаст вам специальный дистрибутив.
Общее описание системы
InsightStream включает следующие компоненты:
База данных: Qdrant, используемая для хранения и поиска данных. Qdrant должен быть установлен отдельно перед развертыванием InsightStream.
Шина сообщений: RabbitMQ для управления очередями задач и обмена сообщениями между сервисами.
Индексатор: работает с Qdrant для хранения и поиска данных, что позволяет находить релевантные документы по схожести.
Суммаризатор: использует GPT для создания кратких и точных ответов на запросы.
Веб-интерфейс: предоставляет доступ к системе через браузер. Построен на React.js и взаимодействует с backend через REST API.
::: note Важно: InsightStream не имеет встроенной аутентификации. Эти механизмы следует добавлять отдельно, если они требуются для вашей инфраструктуры. Кроме того, RabbitMQ, Qdrant и система мониторинга также настраиваются отдельно, и их настройка описана в их документации. :::
Установка и запуск системы
InsightStream устанавливается с помощью Docker Compose, что упрощает контейнеризацию, управление зависимостями и обновление системы.
Шаги установки
-
Проверка окружения: Убедитесь, что Docker и Docker Compose установлены корректно.
-
Настройка RabbitMQ, Qdrant и системы мониторинга: До запуска системы необходимо настроить RabbitMQ, Qdrant и систему мониторинга. Эти компоненты настраиваются отдельно, и их настройка описана в документации (подробности на https://qdrant.tech/ и https://www.rabbitmq.com/). В переменных окружения компоуз-файла указывается местоположение этих систем.
-
Подготовка compose-файла: Настройте файл конфигурации всех компонентов InsightStream. Для удобства можно создать файл .env , который будет автоматически считываться Docker Compose. compose-файле используются следующие переменные окружения, которые должны быть настроены в этом .env файле перед установкой:
CHAT_API_BASE
: http://localhost:8080/v1/
CHAT_MODEL
: Compressa-LLM
CHAT_API_KEY
: Ваш ключ авторизации к локальной платформе Compressa
EMBED_API_BASE
: http://localhost:8080/v1/
EMBED_MODEL
: Compressa-Embedding
EMBED_API_KEY
: Ваш ключ авторизации к локальной платформе Compressa
QDRANT_URL
: базовый URL API базы данных Qdrant
RABBITMQ_URL
: строка подключения к RabbitMQ
Убедитесь, что параметры, такие как порты, ресурсы и зависимости, указаны корректно.
-
Запуск установки: Выполните команду
docker-compose up -d
-
Проверка компонентов: Выполните
docker ps
иdocker logs <container_name>
для проверки состояния.
Доступ к компонентам
Индексатор: http://localhost:8501 Поисковый интерфейс: http://localhost:8000
Тестирование после установки
После развертывания выполните тестовые запросы для проверки работы всех компонентов:
Проверка создания ассистентов: Войдите на http://localhost:8501 и убедитесь, что ассистенты создаются и работают корректно. Проверка поискового интерфейса: Перейдите на http://localhost:8000 и выполните несколько тестовых запросов.
Обеспечение безопасности
InsightStream не имеет встроенной аутентификации, однако можно настроить аутентификацию через Nginx с использованием ключей доступа. Пример конфигурации Nginx:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;
location /api/ {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if ($http_authorization != "Bearer your_api_key_here") {
return 401;
}
}
}
Дополнительные методы аутентификации
Рекомендуется рассмотреть интеграцию с корпоративной системой SSO (Single Sign-On) или использовать OAuth2 для повышения уровня безопасности. Это обеспечит контроль доступа и централизованное управление учетными данными.
Журналирование и мониторинг
Журналирование
InsightStream пишет логи в stdout. Эти логи могут быть проанализированы с использованием ELK (Elasticsearch, Logstash, Kibana). Чтобы настроить интеграцию с ELK, выполните следующие шаги:
-
Logstash: Настройте Logstash для сбора логов из контейнеров Docker InsightStream. Пример конфигурации Logstash:
input {
docker {
containers => ["insightstream"]
type => "docker-logs"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "insightstream-logs"
}
} -
Kibana: Настройте дашборды в Kibana для анализа логов, чтобы следить за состоянием системы и отслеживать ошибки.
Пример лога:
[2024-10-29 14:32:45] INFO: Запрос пользователя: "Какие документы необходимы для регистрации?"
[2024-10-29 14:32:50] ERROR: Ошибка индексации документа "doc123.pdf": Недопустимый формат.
Мониторинг
Используйте Prometheus для мониторинга ресурсов системы (CPU, RAM, диск). Настройте метрики для отслеживания:
- Количество запросов: следите за количеством входящих запросов к системе.
- Время ответа: мониторинг времени отклика для выявления потенциал ьных проблем с производительностью.
- Нагрузка на CPU и использование памяти: помогает выявить нехватку ресурсов.
- Состояние контейнеров: отслеживайте перезапуски и ошибки контейнеров.
Резервное копирование и восстановление данных
Резервное копирование
Для создания снапшота коллекции в Qdrant используйте следующую команду:
curl -X POST "http://localhost:6333/collections/{collection_name}/snapshots"
Восстановление данных
Для восстановления данных из снапшота используйте команду:
curl -X PUT "http://localhost:6333/collections/{collection_name}/snapshots/recover" -H 'Content-Type: application/json' -d'
{
"location": "http://qdrant-node-1:6333/collections/{collection_name}/snapshots/snapshot-2022-10-10.snapshot"
}'
Проверка восстановления
После восстановления данных выполните тестирование, чтобы убедиться, что все документы доступны и корректно индексированы.